package com.jsbj.user.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jsbj.base.ResultBean;
import com.jsbj.user.entities.SysTenantPermission;
import com.jsbj.user.entities.TenantPermissionParams;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 租户菜单表 服务类
 * </p>
 *
 * @author jsbj
 * @since 2022-03-07
 */
public interface ISysTenantPermissionService extends IService<SysTenantPermission> {

    List<SysTenantPermission> findMenuListByUserId(String id);

    List<SysTenantPermission> getByUserIdAndTenant(JSONObject object);

    List<SysTenantPermission> getButtonByUserIdAndTenantAndMenuCode(JSONObject object);

    Map<String, Object> getAllEndMenu();

    List<SysTenantPermission> getPZByUserIdAndTenant(JSONObject object);

    Map<String, Object> getByUserIdAndTenantPC(JSONObject object);

    SysTenantPermission selectExist(String permissionCode);

    List<SysTenantPermission> getListData(JSONObject object);

    ResultBean<JSONObject> saveOrUpdateYY(TenantPermissionParams tenantPermissionParams);

    List<String> alraedyChoose(String tenantCode);

    ResultBean<JSONObject> saveOrUpdateZJD(TenantPermissionParams tenantPermissionParams);

    ResultBean<JSONObject> saveOrUpdateML(TenantPermissionParams tenantPermissionParams);

    SysTenantPermission getDetail(String id);

    ResultBean<JSONObject> deleteData(String id);

    ResultBean<JSONObject> updateData(SysTenantPermission sysTenantPermission);

    List<LinkedHashMap<String, Object>> getByUserIdAndTenantPCNew(JSONObject object);

    String getMenuNameByCode(String tenantCode, String menuCode);

    List<SysTenantPermission> getMLListData(JSONObject object);

    List<SysTenantPermission> getTenantPermissionsByRoleId(String roleId, String tenantCode);

    void dealExpertMenu(String tenantCode, String id);

    List<SysTenantPermission> getByTenantCodeAndPc(String tenantCode);
}
